En desarrollo de software, el término inglés upstream (que traducido al español significa algo similar a «corriente hacia arriba») se refiere al envío de un parche o corrección al autor original del software o, en su defecto, a sus mantenedores principales, para que éste se integre al código fuente del software.
Por ejemplo, un parche enviado upstream es ofrecido a los autores o mantenedores del software. Si es aceptado, será incluido en la aplicación, ya sea inmediatamente o en una versión futura.
El desarrollo en upstream permite a otras distribuciones beneficiarse del parche al utilizar el software. Si por ejemplo se encuentra un error en una aplicación, y los mantenedores de cierta distribución lo corrigen pero no lo envían a upstream, ni las otras distribuciones ni desarrolladores podrán beneficiarse de la corrección sin tener que volver a implementar el parche de manera separada.